package lesson_five;

/**
 * @author LvHengChang
 * version 1.0
 * @description:
 */
public class SLList_bak {
    // 以哨兵节点作为第一个节点
    private IntNode sentinel;
    private int size;

    public SLList_bak() {
        sentinel = new IntNode(63, null);
        size = 0;
    }

    public SLList_bak(int x) {
        sentinel = new IntNode(63, null);
        sentinel.next = new IntNode(x, null);
        size += 1;
    }

    //    2.从SLList的副本开始。java在讲座代码库中提供，实现第二个构造函数，该构造函数接受一个整数数组，并用这些整数创建一个SLList。
    public SLList_bak(int[] x) {

    }


    public static void main(String[] args) {
        SLList_bak L = new SLList_bak();
        L.addFirst(10);
        L.addFirst(5);
        L.addLast(20);
        System.out.println(L.getFirst());
        System.out.println(L.size());

    }

    public void addFirst(int x) {
        sentinel.next = new IntNode(x, sentinel.next);
        size += 1;
    }

    //    1.从SLList的副本开始。在讲座代码库中提供给您的java,实现方法deleteFirst,该方法删除SLList中的第一个元素。
    //    不要忘记维护上面讨论的三个不变量。
    public void deleteFirst() {

    }

    public int getFirst() {
        return sentinel.next.item;
    }

    public int size() {
        return size;
    }

    public void addLast(int x) {
        size += 1;
        IntNode p = sentinel;
        while (p.next != null) {
            p = p.next;
        }
        p.next = new IntNode(x, null);
    }

    private static class IntNode {
        public int item;
        public IntNode next;

        public IntNode(int i, IntNode n) {
            item = i;
            next = n;
        }
    }


}
